<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>MatroskaExtractor (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="MatroskaExtractor (ExoPlayer library)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.extractor.mkv</a></div>
<h2 title="Class MatroskaExtractor" class="title">Class MatroskaExtractor</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../Extractor.html" title="interface in com.google.android.exoplayer2.extractor">Extractor</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">MatroskaExtractor</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>
implements <a href="../Extractor.html" title="interface in com.google.android.exoplayer2.extractor">Extractor</a></pre>
<div class="block">Extracts data from the Matroska and WebM container formats.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="MatroskaExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.mkv">MatroskaExtractor.Flags</a></span></code></th>
<td class="colLast">
<div class="block">Flags controlling the behavior of the extractor.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.com.google.android.exoplayer2.extractor.Extractor">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;com.google.android.exoplayer2.extractor.<a href="../Extractor.html" title="interface in com.google.android.exoplayer2.extractor">Extractor</a></h3>
<code><a href="../Extractor.ReadResult.html" title="annotation in com.google.android.exoplayer2.extractor">Extractor.ReadResult</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FACTORY">FACTORY</a></span></code></th>
<td class="colLast">
<div class="block">Factory for <a href="MatroskaExtractor.html" title="class in com.google.android.exoplayer2.extractor.mkv"><code>MatroskaExtractor</code></a> instances.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FLAG_DISABLE_SEEK_FOR_CUES">FLAG_DISABLE_SEEK_FOR_CUES</a></span></code></th>
<td class="colLast">
<div class="block">Flag to disable seeking for cues.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.extractor.Extractor">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.extractor.<a href="../Extractor.html" title="interface in com.google.android.exoplayer2.extractor">Extractor</a></h3>
<code><a href="../Extractor.html#RESULT_CONTINUE">RESULT_CONTINUE</a>, <a href="../Extractor.html#RESULT_END_OF_INPUT">RESULT_END_OF_INPUT</a>, <a href="../Extractor.html#RESULT_SEEK">RESULT_SEEK</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">MatroskaExtractor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">MatroskaExtractor</a></span>&#8203;(int&nbsp;flags)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#binaryElement(int,int,com.google.android.exoplayer2.extractor.ExtractorInput)">binaryElement</a></span>&#8203;(int&nbsp;id,
             int&nbsp;contentSize,
             <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a>&nbsp;input)</code></th>
<td class="colLast">
<div class="block">Called when a binary element is encountered.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#endMasterElement(int)">endMasterElement</a></span>&#8203;(int&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Called when the end of a master element is encountered.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#floatElement(int,double)">floatElement</a></span>&#8203;(int&nbsp;id,
            double&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Called when a float element is encountered.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getElementType(int)">getElementType</a></span>&#8203;(int&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Maps an element ID to a corresponding type.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleBlockAddIDExtraData(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor.Track,com.google.android.exoplayer2.extractor.ExtractorInput,int)">handleBlockAddIDExtraData</a></span>&#8203;(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor.Track&nbsp;track,
                         <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a>&nbsp;input,
                         int&nbsp;contentSize)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleBlockAdditionalData(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor.Track,int,com.google.android.exoplayer2.extractor.ExtractorInput,int)">handleBlockAdditionalData</a></span>&#8203;(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor.Track&nbsp;track,
                         int&nbsp;blockAdditionalId,
                         <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a>&nbsp;input,
                         int&nbsp;contentSize)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(com.google.android.exoplayer2.extractor.ExtractorOutput)">init</a></span>&#8203;(<a href="../ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorOutput</a>&nbsp;output)</code></th>
<td class="colLast">
<div class="block">Initializes the extractor with an <a href="../ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorOutput</code></a>.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#integerElement(int,long)">integerElement</a></span>&#8203;(int&nbsp;id,
              long&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Called when an integer element is encountered.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLevel1Element(int)">isLevel1Element</a></span>&#8203;(int&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Checks if the given id is that of a level 1 element.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#read(com.google.android.exoplayer2.extractor.ExtractorInput,com.google.android.exoplayer2.extractor.PositionHolder)">read</a></span>&#8203;(<a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a>&nbsp;input,
    <a href="../PositionHolder.html" title="class in com.google.android.exoplayer2.extractor">PositionHolder</a>&nbsp;seekPosition)</code></th>
<td class="colLast">
<div class="block">Extracts data read from a provided <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release()">release</a></span>()</code></th>
<td class="colLast">
<div class="block">Releases all kept resources.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seek(long,long)">seek</a></span>&#8203;(long&nbsp;position,
    long&nbsp;timeUs)</code></th>
<td class="colLast">
<div class="block">Notifies the extractor that a seek has occurred.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sniff(com.google.android.exoplayer2.extractor.ExtractorInput)">sniff</a></span>&#8203;(<a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a>&nbsp;input)</code></th>
<td class="colLast">
<div class="block">Returns whether this extractor can extract samples from the <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a>, which must
 provide data from the start of the stream.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#startMasterElement(int,long,long)">startMasterElement</a></span>&#8203;(int&nbsp;id,
                  long&nbsp;contentPosition,
                  long&nbsp;contentSize)</code></th>
<td class="colLast">
<div class="block">Called when the start of a master element is encountered.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stringElement(int,java.lang.String)">stringElement</a></span>&#8203;(int&nbsp;id,
             <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Called when a string element is encountered.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a id="FACTORY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FACTORY</h4>
<pre>public static final&nbsp;<a href="../ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a> FACTORY</pre>
<div class="block">Factory for <a href="MatroskaExtractor.html" title="class in com.google.android.exoplayer2.extractor.mkv"><code>MatroskaExtractor</code></a> instances.</div>
</li>
</ul>
<a id="FLAG_DISABLE_SEEK_FOR_CUES">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FLAG_DISABLE_SEEK_FOR_CUES</h4>
<pre>public static final&nbsp;int FLAG_DISABLE_SEEK_FOR_CUES</pre>
<div class="block">Flag to disable seeking for cues.
 <p>
 Normally (i.e. when this flag is not set) the extractor will seek to the cues element if its
 position is specified in the seek head and if it's after the first cluster. Setting this flag
 disables seeking to the cues element. If the cues element is after the first cluster then the
 media is treated as being unseekable.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor.FLAG_DISABLE_SEEK_FOR_CUES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MatroskaExtractor</h4>
<pre>public&nbsp;MatroskaExtractor()</pre>
</li>
</ul>
<a id="&lt;init&gt;(int)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MatroskaExtractor</h4>
<pre>public&nbsp;MatroskaExtractor&#8203;(<a href="MatroskaExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.mkv">@Flags</a>
                         int&nbsp;flags)</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="sniff(com.google.android.exoplayer2.extractor.ExtractorInput)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sniff</h4>
<pre class="methodSignature">public final&nbsp;boolean&nbsp;sniff&#8203;(<a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a>&nbsp;input)
                    throws <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Extractor.html#sniff(com.google.android.exoplayer2.extractor.ExtractorInput)">Extractor</a></code></span></div>
<div class="block">Returns whether this extractor can extract samples from the <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a>, which must
 provide data from the start of the stream.

 <p>If <code>true</code> is returned, the <code>input</code>'s reading position may have been modified.
 Otherwise, only its peek position may have been modified.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Extractor.html#sniff(com.google.android.exoplayer2.extractor.ExtractorInput)">sniff</a></code>&nbsp;in interface&nbsp;<code><a href="../Extractor.html" title="interface in com.google.android.exoplayer2.extractor">Extractor</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>input</code> - The <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a> from which data should be peeked/read.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether this extractor can read the provided input.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></code> - If an error occurred reading from the input.</dd>
</dl>
</li>
</ul>
<a id="init(com.google.android.exoplayer2.extractor.ExtractorOutput)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;init&#8203;(<a href="../ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorOutput</a>&nbsp;output)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Extractor.html#init(com.google.android.exoplayer2.extractor.ExtractorOutput)">Extractor</a></code></span></div>
<div class="block">Initializes the extractor with an <a href="../ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorOutput</code></a>. Called at most once.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Extractor.html#init(com.google.android.exoplayer2.extractor.ExtractorOutput)">init</a></code>&nbsp;in interface&nbsp;<code><a href="../Extractor.html" title="interface in com.google.android.exoplayer2.extractor">Extractor</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>output</code> - An <a href="../ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorOutput</code></a> to receive extracted data.</dd>
</dl>
</li>
</ul>
<a id="seek(long,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seek</h4>
<pre class="methodSignature">@CallSuper
public&nbsp;void&nbsp;seek&#8203;(long&nbsp;position,
                 long&nbsp;timeUs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Extractor.html#seek(long,long)">Extractor</a></code></span></div>
<div class="block">Notifies the extractor that a seek has occurred.
 <p>
 Following a call to this method, the <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a> passed to the next invocation of
 <a href="../Extractor.html#read(com.google.android.exoplayer2.extractor.ExtractorInput,com.google.android.exoplayer2.extractor.PositionHolder)"><code>Extractor.read(ExtractorInput, PositionHolder)</code></a> is required to provide data starting from <code>
 position</code> in the stream. Valid random access positions are the start of the stream and
 positions that can be obtained from any <a href="../SeekMap.html" title="interface in com.google.android.exoplayer2.extractor"><code>SeekMap</code></a> passed to the <a href="../ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorOutput</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Extractor.html#seek(long,long)">seek</a></code>&nbsp;in interface&nbsp;<code><a href="../Extractor.html" title="interface in com.google.android.exoplayer2.extractor">Extractor</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>position</code> - The byte offset in the stream from which data will be provided.</dd>
<dd><code>timeUs</code> - The seek time in microseconds.</dd>
</dl>
</li>
</ul>
<a id="release()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;release()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Extractor.html#release()">Extractor</a></code></span></div>
<div class="block">Releases all kept resources.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Extractor.html#release()">release</a></code>&nbsp;in interface&nbsp;<code><a href="../Extractor.html" title="interface in com.google.android.exoplayer2.extractor">Extractor</a></code></dd>
</dl>
</li>
</ul>
<a id="read(com.google.android.exoplayer2.extractor.ExtractorInput,com.google.android.exoplayer2.extractor.PositionHolder)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>read</h4>
<pre class="methodSignature">public final&nbsp;int&nbsp;read&#8203;(<a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a>&nbsp;input,
                      <a href="../PositionHolder.html" title="class in com.google.android.exoplayer2.extractor">PositionHolder</a>&nbsp;seekPosition)
               throws <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Extractor.html#read(com.google.android.exoplayer2.extractor.ExtractorInput,com.google.android.exoplayer2.extractor.PositionHolder)">Extractor</a></code></span></div>
<div class="block">Extracts data read from a provided <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a>. Must not be called before <a href="../Extractor.html#init(com.google.android.exoplayer2.extractor.ExtractorOutput)"><code>Extractor.init(ExtractorOutput)</code></a>.

 <p>A single call to this method will block until some progress has been made, but will not
 block for longer than this. Hence each call will consume only a small amount of input data.

 <p>In the common case, <a href="../Extractor.html#RESULT_CONTINUE"><code>Extractor.RESULT_CONTINUE</code></a> is returned to indicate that the <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a> passed to the next read is required to provide data continuing from the
 position in the stream reached by the returning call. If the extractor requires data to be
 provided from a different position, then that position is set in <code>seekPosition</code> and
 <a href="../Extractor.html#RESULT_SEEK"><code>Extractor.RESULT_SEEK</code></a> is returned. If the extractor reached the end of the data provided by the
 <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a>, then <a href="../Extractor.html#RESULT_END_OF_INPUT"><code>Extractor.RESULT_END_OF_INPUT</code></a> is returned.

 <p>When this method throws an <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top"><code>IOException</code></a>, extraction may continue by providing an
 <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a> with an unchanged <a href="../ExtractorInput.html#getPosition()"><code>read position</code></a> to
 a subsequent call to this method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Extractor.html#read(com.google.android.exoplayer2.extractor.ExtractorInput,com.google.android.exoplayer2.extractor.PositionHolder)">read</a></code>&nbsp;in interface&nbsp;<code><a href="../Extractor.html" title="interface in com.google.android.exoplayer2.extractor">Extractor</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>input</code> - The <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a> from which data should be read.</dd>
<dd><code>seekPosition</code> - If <a href="../Extractor.html#RESULT_SEEK"><code>Extractor.RESULT_SEEK</code></a> is returned, this holder is updated to hold the
     position of the required data.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>One of the <code>RESULT_</code> values defined in this interface.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></code> - If an error occurred reading from or parsing the input.</dd>
</dl>
</li>
</ul>
<a id="getElementType(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getElementType</h4>
<pre class="methodSignature">@CallSuper
<a href="EbmlProcessor.ElementType.html" title="annotation in com.google.android.exoplayer2.extractor.mkv">@ElementType</a>
protected&nbsp;int&nbsp;getElementType&#8203;(int&nbsp;id)</pre>
<div class="block">Maps an element ID to a corresponding type.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EbmlProcessor.html#getElementType(int)"><code>EbmlProcessor.getElementType(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="isLevel1Element(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLevel1Element</h4>
<pre class="methodSignature">@CallSuper
protected&nbsp;boolean&nbsp;isLevel1Element&#8203;(int&nbsp;id)</pre>
<div class="block">Checks if the given id is that of a level 1 element.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EbmlProcessor.html#isLevel1Element(int)"><code>EbmlProcessor.isLevel1Element(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="startMasterElement(int,long,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startMasterElement</h4>
<pre class="methodSignature">@CallSuper
protected&nbsp;void&nbsp;startMasterElement&#8203;(int&nbsp;id,
                                  long&nbsp;contentPosition,
                                  long&nbsp;contentSize)
                           throws <a href="../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></pre>
<div class="block">Called when the start of a master element is encountered.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EbmlProcessor.html#startMasterElement(int,long,long)"><code>EbmlProcessor.startMasterElement(int, long, long)</code></a></dd>
</dl>
</li>
</ul>
<a id="endMasterElement(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>endMasterElement</h4>
<pre class="methodSignature">@CallSuper
protected&nbsp;void&nbsp;endMasterElement&#8203;(int&nbsp;id)
                         throws <a href="../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></pre>
<div class="block">Called when the end of a master element is encountered.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EbmlProcessor.html#endMasterElement(int)"><code>EbmlProcessor.endMasterElement(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="integerElement(int,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>integerElement</h4>
<pre class="methodSignature">@CallSuper
protected&nbsp;void&nbsp;integerElement&#8203;(int&nbsp;id,
                              long&nbsp;value)
                       throws <a href="../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></pre>
<div class="block">Called when an integer element is encountered.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EbmlProcessor.html#integerElement(int,long)"><code>EbmlProcessor.integerElement(int, long)</code></a></dd>
</dl>
</li>
</ul>
<a id="floatElement(int,double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>floatElement</h4>
<pre class="methodSignature">@CallSuper
protected&nbsp;void&nbsp;floatElement&#8203;(int&nbsp;id,
                            double&nbsp;value)
                     throws <a href="../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></pre>
<div class="block">Called when a float element is encountered.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EbmlProcessor.html#floatElement(int,double)"><code>EbmlProcessor.floatElement(int, double)</code></a></dd>
</dl>
</li>
</ul>
<a id="stringElement(int,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stringElement</h4>
<pre class="methodSignature">@CallSuper
protected&nbsp;void&nbsp;stringElement&#8203;(int&nbsp;id,
                             <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;value)
                      throws <a href="../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></pre>
<div class="block">Called when a string element is encountered.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EbmlProcessor.html#stringElement(int,java.lang.String)"><code>EbmlProcessor.stringElement(int, String)</code></a></dd>
</dl>
</li>
</ul>
<a id="binaryElement(int,int,com.google.android.exoplayer2.extractor.ExtractorInput)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>binaryElement</h4>
<pre class="methodSignature">@CallSuper
protected&nbsp;void&nbsp;binaryElement&#8203;(int&nbsp;id,
                             int&nbsp;contentSize,
                             <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a>&nbsp;input)
                      throws <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></pre>
<div class="block">Called when a binary element is encountered.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EbmlProcessor.html#binaryElement(int,int,com.google.android.exoplayer2.extractor.ExtractorInput)"><code>EbmlProcessor.binaryElement(int, int, ExtractorInput)</code></a></dd>
</dl>
</li>
</ul>
<a id="handleBlockAddIDExtraData(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor.Track,com.google.android.exoplayer2.extractor.ExtractorInput,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleBlockAddIDExtraData</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;handleBlockAddIDExtraData&#8203;(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor.Track&nbsp;track,
                                         <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a>&nbsp;input,
                                         int&nbsp;contentSize)
                                  throws <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></code></dd>
</dl>
</li>
</ul>
<a id="handleBlockAdditionalData(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor.Track,int,com.google.android.exoplayer2.extractor.ExtractorInput,int)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>handleBlockAdditionalData</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;handleBlockAdditionalData&#8203;(com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor.Track&nbsp;track,
                                         int&nbsp;blockAdditionalId,
                                         <a href="../ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a>&nbsp;input,
                                         int&nbsp;contentSize)
                                  throws <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>
